package com.xiaozhu.pojo.dto;

import jakarta.validation.constraints.*;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * @author 朱慧军
 * @version 1.0
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class ChatDto {

    // 🔧 输入验证：聊天的类型（1-普通聊天，2-PDF读取，3-恋爱模拟器）
    @NotNull(message = "聊天类型不能为空")
    @Min(value = 1, message = "聊天类型必须大于等于1")
    @Max(value = 3, message = "聊天类型必须小于等于3")
    private Integer type;

    // 🔧 输入验证：提示词
    @NotBlank(message = "提示词不能为空")
    @Size(min = 1, max = 5000, message = "提示词长度必须在1-5000字符之间")
    private String prompt;

    // 🔧 输入验证：聊天id（会话ID）
    @NotNull(message = "聊天ID不能为空")
    @Positive(message = "聊天ID必须为正数")
    private Integer chatId;

    // 🔧 输入验证：有附件，多模态聊天（可选）
    @Size(max = 10, message = "最多只能上传10个文件")
    private List<MultipartFile> files;


}
